<?php
class ModelFactory {
    protected $container;
    
    public function __construct(Container $container) {
        $this->container = $container;
        
        // 确保APP_ROOT常量已定义
        if (!defined('APP_ROOT')) {
            define('APP_ROOT', dirname(__DIR__));
        }
    }
    
    /**
     * 创建模型实例
     * 
     * @param string $modelName 模型名称
     * @return Model 模型实例
     * @throws Exception 如果模型不存在
     */
    public function create($modelName) {
        $modelFile = APP_ROOT . '/app/models/' . $modelName . '.php';
        
        if (!file_exists($modelFile)) {
            throw new Exception("模型文件 {$modelFile} 不存在");
        }
        
        // 如果模型类不存在，则包含模型文件
        if (!class_exists($modelName)) {
            require_once $modelFile;
        }
        
        // 通过容器创建模型实例
        return new $modelName($this->container);
    }
}
?>